#include "Multigrid_2D.h"

#define pi 4 * atan(1.0)

double u(double x,double y)
{
    //return sin(pi * x) *sin(pi * y);
    return cos(pi * x) *cos(pi * y);
};

double f(double x,double y)
{
    return 2 * pi * pi * u(x,y);
};

int main()
{
    MyMultigrid_2D::Options op;
    op.CycleType = "FMcycle";
    op.CycleType = "Vcycle";
    op.MaxIterNum = 20;
    op.RelAccurcy = 1e-9;
    MyMultigrid_2D::Multigrid_2D<64> m(u,f,op);
    std::cout << m << std::endl;
    MyMultigrid_2D::Multigrid_2D<64> n = m;
    std::cout << n << std::endl;
    m.solve();
    
    return 0;
};